home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Compilers / digital marsC compier / dm / include / win32 / Daogetrw.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-12-04  |  3.9 KB  |  144 lines

  1. /************************************************************************
  2. **  D A O G E T R W . H                                                 *
  3. **                                                                      *
  4. **  GetRows interface                                                   *
  5. **                                                                      *
  6. **  Warning: The interface defined in this file is for internal use by    *
  7. **    the Microsoft Foundation Classes and the dbdao C++ classes.        *
  8. **    Future releases of DAO may not be completely compatible with this    *
  9. **    implementation.  However, if you write to the MFC or dbdao         *
  10. **    classes that use this interface, those classes will continue to     *
  11. **    be compatible even if this underlying interface changes.            *
  12. **                                                                      *
  13. *************************************************************************
  14. ** Copyright (C) 1995 by Microsoft Corporation                          *
  15. **         All Rights Reserved                                          *
  16. ************************************************************************/
  17.  
  18. #if !defined (_DAOGETRW_H_)
  19. #define _DAOGETRW_H_
  20.  
  21.  
  22. /*
  23.     Enumerations
  24. */
  25. typedef enum
  26.     {
  27.     DAOCOLKIND_IND = 0,
  28.     DAOCOLKIND_STR,
  29.     DAOCOLKIND_WSTR
  30.     } DAOCOLKIND;
  31.  
  32. typedef enum
  33.     {
  34.     DAO_I2 = 0,
  35.     DAO_I4,
  36.     DAO_R4,
  37.     DAO_R8,
  38.     DAO_CURRENCY,
  39.     DAO_DATE,
  40.     DAO_BOOL,
  41.     DAO_BSTR,
  42.     DAO_LPSTR,
  43.     DAO_LPWSTR,
  44.     DAO_BLOB,
  45.     DAO_BYTES,
  46.     DAO_CHAR,
  47.     DAO_WCHAR,
  48.     DAO_ANYVARIANT,
  49.     DAO_BOOKMARK,
  50.     DAO_BYTE,
  51.     DAO_GUID,
  52.     DAO_DATATYPEMAX
  53.     } DAODATATYPE;
  54.  
  55. /*
  56.     Macros
  57. */
  58. #define DAO_NOINDICATOR 0xffffffff
  59. #define DAO_NULL        0xffffffff
  60. #define DAO_CANTCOERCE  0xfffffffc
  61. #define DAO_NOMAXLENGTH 0x00000000
  62.  
  63. #define DAOROWFETCH_CALLEEALLOCATES     0x00000001
  64. #define DAOROWFETCH_DONTADVANCE         0x00000002
  65. #define DAOROWFETCH_FORCEREFRESH        0x00000004
  66. #define DAOROWFETCH_BINDABSOLUTE        0x00000008
  67.  
  68. #define DAOBINDING_DIRECT               0x00000001
  69. #define DAOBINDING_VARIANT              0x00000002
  70. #define DAOBINDING_CALLBACK             0x00000004
  71.  
  72. /*
  73.     Structures
  74. */
  75. typedef struct
  76.     {
  77.     DWORD           dwKind;
  78.     union
  79.         {
  80.         LONG        ind;
  81.         LPCSTR      lpstr;
  82.         LPCWSTR        lpwstr;
  83.         };
  84.     } DAOCOLUMNID;
  85. typedef DAOCOLUMNID *LPDAOCOLUMNID;
  86.  
  87. // Callback for binding
  88. EXTERN_C typedef HRESULT (STDAPICALLTYPE *LPDAOBINDFUNC)(ULONG cb, DWORD dwUser, LPVOID *ppData);
  89. #define DAOBINDINGFUNC(f)   STDAPI f (ULONG cb, DWORD dwUser, LPVOID *ppData)
  90.  
  91. typedef struct
  92.     {
  93.     DAOCOLUMNID     columnID;
  94.     ULONG           cbDataOffset;
  95.     ULONG           cbMaxLen;
  96.     ULONG           cbInfoOffset;
  97.     DWORD           dwBinding;
  98.     DWORD           dwDataType;
  99.     DWORD           dwUser;
  100.     } DAOCOLUMNBINDING;
  101. typedef DAOCOLUMNBINDING *LPDAOCOLUMNBINDING;
  102.  
  103. typedef struct
  104.     {
  105.     ULONG           cRowsRequested;
  106.     DWORD           dwFlags;
  107.     LPVOID          pData;
  108.     LPVOID          pVarData;
  109.     ULONG           cbVarData;
  110.     ULONG           cRowsReturned;
  111.     } DAOFETCHROWS;
  112. typedef DAOFETCHROWS *LPDAOFETCHROWS;
  113.  
  114. /*
  115.     New Errors
  116.  
  117.     **NOTE: OLE standard ids to be determined.
  118. */
  119.  
  120. #define GETROWSUCCESS(x) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, x)
  121. #define GETROWERR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, x)
  122.  
  123. #define S_BUFFERTOOSMALL    GETROWSUCCESS(0x1000)
  124. #define S_ENDOFCURSOR       GETROWSUCCESS(0x1001)
  125. #define S_SILENTCANCEL      GETROWSUCCESS(0x1002)
  126. #define S_RECORDDELETED     GETROWSUCCESS(0x1003)
  127.  
  128. #define E_ROWTOOSHORT       GETROWERR(0x1000)
  129. #define E_BADBINDINFO       GETROWERR(0x1001)
  130. #define E_COLUMNUNAVAILABLE GETROWERR(0x1002)
  131.  
  132.  
  133. /*
  134.     Interfaces
  135. */
  136. #undef INTERFACE
  137. #define INTERFACE ICDAORecordset
  138. DECLARE_INTERFACE_(ICDAORecordset, IDispatch)
  139.     {
  140.     STDMETHOD(GetRows)          (THIS_ LONG cRowsToSkip, LONG cCol, LPDAOCOLUMNBINDING prgBndCol, ULONG cbRowLen, LPDAOFETCHROWS pFetchRows) PURE;
  141.     };
  142.  
  143. #endif // _DAOGETRW_H_
  144.